#!/bin/bash

# HTML Generator 启动脚本
# 同时运行 Node.js 代理服务器和 Vite 前端开发服务器

echo "🚀 启动 HTML Generator 开发环境..."
echo "================================"

# 检查 Node.js 是否安装
if ! node --version >/dev/null 2>&1; then
    echo "❌ 错误: Node.js 未安装或不在PATH中，请先安装 Node.js"
    echo "💡 如果使用nvm，请先运行: source ~/.nvm/nvm.sh && nvm use node"
    exit 1
fi

# 检查 npm 是否安装
if ! npm --version >/dev/null 2>&1; then
    echo "❌ 错误: npm 未安装或不在PATH中，请先安装 npm"
    exit 1
fi

# 检查依赖是否已安装
if [ ! -d "node_modules" ]; then
    echo "📦 安装项目依赖..."
    npm install
    if [ $? -ne 0 ]; then
        echo "❌ 依赖安装失败"
        exit 1
    fi
fi

echo "🔧 启动服务..."
echo ""

# 定义清理函数
cleanup() {
    echo ""
    echo "🛑 正在停止所有服务..."
    # 杀死所有子进程
    jobs -p | xargs -r kill
    echo "✅ 所有服务已停止"
    exit 0
}

# 捕获 Ctrl+C 信号
trap cleanup SIGINT SIGTERM

# 启动代理服务器（后台运行）
echo "🌐 启动代理服务器 (端口 3001)..."
npm run proxy &
PROXY_PID=$!

# 等待代理服务器启动
sleep 2

# 启动前端开发服务器（后台运行）
echo "🎨 启动前端开发服务器 (端口 5173)..."
npm run dev &
DEV_PID=$!

# 等待前端服务器启动
sleep 3

echo ""
echo "✅ 服务启动完成！"
echo "================================"
echo "📱 前端地址: http://localhost:5173"
echo "🔌 代理服务器: http://localhost:3001"
echo "================================"
echo "💡 按 Ctrl+C 停止所有服务"
echo ""

# 等待所有后台进程
wait